//sendMessage.js
// 这个函数用于发送用户的消息，并获取机器人的回复
function sendMessage(message) {
    console.log('用户输入：', message);
    const chatContainer = document.getElementById('chat-container');
    const messageWrapper = document.createElement('div');
    messageWrapper.classList.add('message-wrapper', 'user-message-wrapper');
    const userMessageElement = document.createElement('div');
    userMessageElement.classList.add('message', 'user-message');
    userMessageElement.textContent = message;
    messageWrapper.appendChild(userMessageElement);
    chatContainer.appendChild(messageWrapper);
    chatContainer.scrollTop = chatContainer.scrollHeight;

    fetchBaiduResponse(message)
        .then(response => {
            const base64Images = extractBase64Images(response);
            base64Images.forEach(b64Image => {
                appendBotMessage(chatContainer, b64Image);
            });
            chatContainer.scrollTop = chatContainer.scrollHeight;
        })
        .catch(error => {
            appendBotMessage(chatContainer, "wanr: access_token失效，联系作者更新！");
            console.error('Error fetching Baidu response:', error);
            chatContainer.scrollTop = chatContainer.scrollHeight;
        });
}

function extractBase64Images(response) {
    const base64Images = [];
    if (response && response.data) {
        for (const imageData of response.data) {
            if (imageData.b64_image) {
                base64Images.push(imageData.b64_image);
            }
        }
    }
    return base64Images;
}

function sendPrompt(message) {
    // 获取聊天容器元素
    const chatContainer = document.getElementById('chat-container');

    // 创建一个新的div元素作为用户消息的容器
    const messageWrapper = document.createElement('div');
    // 为消息容器添加CSS类，设置为用户消息
    messageWrapper.classList.add('message-wrapper', 'user-message-wrapper');

    // 创建一个新的div元素作为用户消息内容
    const userMessageElement = document.createElement('div');
    // 为消息内容添加CSS类，设置为用户消息
    userMessageElement.classList.add('message', 'user-message');
    // 设置消息内容为用户输入的消息
    userMessageElement.textContent = "优化指令词：" + message;

    // 检查聊天容器是否滚动到底部
    const scrollToBottom = chatContainer.scrollHeight - chatContainer.clientHeight === chatContainer.scrollTop;

    // 将用户消息添加到消息容器中，并将消息容器添加到聊天容器中
    messageWrapper.appendChild(userMessageElement);
    chatContainer.appendChild(messageWrapper);

    // 如果聊天容器滚动到底部，则保持滚动到底部状态
    if (scrollToBottom) {
        chatContainer.scrollTop = chatContainer.scrollHeight;
    } else {
        // 如果没有滚动到底部，也将聊天容器滚动到底部
        chatContainer.scrollTop = chatContainer.scrollHeight;
    }

    let text = '';
    text += "指令:为我生成合适的文生图Prompt.";
    text += "背景信息:我要使用文生图的生成式大模型，现在需要你帮我根据我的画面描述写一份文生图的Prompt.";
    text += "我的画面描述中有的内容按我的描述写，我的描述中没有的内容你可以自由选择合适的词语进行描述。";
    text += "补充数据:" + message;
    text += "##输出格式参考:画面元素1;画面元素2;画面元素3;画风;色彩风格;色彩风格;构图方式；";
    text += "不需要回复其他任何内容。";

    // 调用函数获取百度接口的回复
    fetchBaiduResponse_prompt(text)
        .then(response => {
            // 获取回复后，将回复消息添加到聊天容器中
            appendBotMessage_prompt(chatContainer, "优化后指令内容：" + response.result);
            document.getElementById("input-message").value = response.result;
        })
        .catch(error => {
            // 当出现错误时，将"Error"作为机器人回复显示在聊天容器中
            appendBotMessage(chatContainer, "wanr: access_token失效，联系作者更新！");
            console.error('Error fetching Baidu response:', error); // 捕捉并输出错误
        });
}